package com.zb.config;

import cn.dev33.satoken.SaManager;
import cn.dev33.satoken.listener.SaTokenListener;
import cn.dev33.satoken.stp.SaLoginModel;
import org.springframework.stereotype.Component;

/**
 * 侦听器配置，监听登录账号
 * @Author WEN
 * @Date 2023/7/12 0012
 **/
@Component
public class MySaTokenListener implements SaTokenListener {
    @Override
    public void doLogin(String s, Object o, String s1, SaLoginModel saLoginModel) {
        SaManager.log.info("您登录了===================>>>>>>>>>doLogin");
    }

    @Override
    public void doLogout(String s, Object o, String s1) {
        SaManager.log.info("您退出登录了===================>>>>>>>>>doLogout");
    }

    @Override
    public void doKickout(String s, Object o, String s1) {
        SaManager.log.info("您被踢下线了===================>>>>>>>>>doKickout");
        SaManager.log.info("s  ={}", s);
        SaManager.log.info("o  ={}", o);
        SaManager.log.info("s1  ={}", s1);
        SaManager.log.info("您被踢下线了===================>>>>>>>>>doKickout");
    }

    @Override
    public void doReplaced(String s, Object o, String s1) {
        // TODO 同设备的登录，实顶下线时，通知旧token的账号，被顶下线了，同时提示是否因为账号密码泄露导致被下线
        SaManager.log.info("您被顶下线了===================>>>>>>>>>doReplaced");
        SaManager.log.info("s  ={}", s);
        SaManager.log.info("o  ={}", o);
        SaManager.log.info("s1  ={}", s1); // 旧的token
        SaManager.log.info("您被顶下线了===================>>>>>>>>>doReplaced");
    }

    @Override
    public void doDisable(String s, Object o, String s1, int i, long l) {

    }

    @Override
    public void doUntieDisable(String s, Object o, String s1) {

    }

    @Override
    public void doOpenSafe(String s, String s1, String s2, long l) {

    }

    @Override
    public void doCloseSafe(String s, String s1, String s2) {

    }

    @Override
    public void doCreateSession(String s) {

    }

    @Override
    public void doLogoutSession(String s) {

    }

    @Override
    public void doRenewTimeout(String s, Object o, long l) {

    }
}
